package cn.openea.perpartner.wxpay.service;

import cn.openea.perpartner.wxpay.vo.PayVo;

import java.beans.IntrospectionException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

/**
 * @Name: 反射服务工具类
 * @author: Mr.Yun
 * @Created: 2022/10/17 11:54
 */
public interface ReflectObject {

    // 传入payVo对象，获取对象中的所有字段并设置到Map中
    Map<String, Object> payVoToMap(PayVo payVo) throws IllegalAccessException;

    // 传入 Object 对象，获取对象中的 属性所有字段，包含父类的字段
    List<Field> getFieldList(Object object);

    // 传入Object类型对象，同时传入Map数据源，若Map中的key有值则设置到Object中
    void invoke(Map map, Object object) throws IllegalAccessException;

}
